package demo02.controller;

import demo02.entity.User;
import demo02.service.UseService;
import demo02.tools.MD5Encryption;

import java.io.UnsupportedEncodingException;
import java.util.Scanner;
import java.util.UUID;

//分派任务 不具体执行
public class UseController {

    UseService us = new UseService();

    Scanner scanner = new Scanner(System.in);
    //1.定义一个方法static void register()，通过Scanner来完成用户的注册功能
    public void register() throws Exception {
        System.out.println("=====开始注册=====");
        String loginName;
        //从控制台获取登录名 判断登录名是否被使用过
        while (true){
            System.out.println("请输入登录名：");
            loginName = scanner.nextLine();
            User findUser = us.findUserByName(loginName);
            if (findUser != null){
                System.out.println("登录名已经存在");
            }else {
                break;
            }
        }

        System.out.println("请输入用户名");
        String userName = scanner.nextLine();
        System.out.println("请输入密码");
        String password = scanner.nextLine();

        User user = new User(
                Integer.parseInt(String.valueOf(Math.random()*1000)),
                userName,
                MD5Encryption.getEncryption(password),
                null
        );
        boolean result = us.register(user);

        if (result){
            System.out.println("注册成功");
        }else {
            System.out.println("注册失败");
        }
    }

    //2.定义一个方法static void login(),实现用户的登陆功能
    public void login() throws Exception {

        System.out.println("=====欢迎来到登录页面=====");

        while(true){
            System.out.println("请输入登录名：");
            String loginName = scanner.nextLine();
            System.out.println("请输入密码：");
            String password = MD5Encryption.getEncryption(scanner.nextLine());
            //根据登录名和密码查找数据，如果能找到就是登录成功，找不到就是登录失败
            User findUser = us.login(loginName,password);
            //如果这个对象不为空，表示登录成功，展示信息就可以了
            if(findUser!=null){
                //再次读取修改之后的数据
                User findUserUpdated = us.login(loginName,password);
                System.out.println("欢迎你："+findUserUpdated.getUserName());
                break;
            }else{
                System.out.println("用户名或密码错误！");
            }
        }


    }

    public static void main(String[] args) throws Exception {
        UseController uc = new UseController();
        uc.login();
    }

}
